/* 
 * File:   TranscriberMetaInfo.h
 * Author: Guilherme Monteiro
 *
 */

#ifndef TRANSCRIBERMETAINFO_H
#define	TRANSCRIBERMETAINFO_H

#include "../headers/MetaInfo.h"

#include <cstring>

using namespace std;

class TranscriberMetaInfo : public MetaInfo {
public:
    TranscriberMetaInfo(string filePath, GenericModel* model) 
            throw (NullImageException, InvalidModelException);
    TranscriberMetaInfo(const TranscriberMetaInfo& orig);
    virtual ~TranscriberMetaInfo();
    
    string getOutputFilePath();
    string getInputFilePath();
    string getLogImageIncompletePath();
    
    void setLowResolutionImagePath(string newLowPath) throw (NullImageException);
    void setHighResolutionImagePath(string newHighPath) throw (NullImageException);
    
    string getLowResolutionImageCutIncompletePath(); 
    string getHighResolutionImageCutIncompletePath();
    string getModelPreviewIncompletePath();
private:
    string outputFilePath;
    string inputFilePath;
    string modelPreviewPath;
    
    string lowResolutionImageCutIncompletePath;
    string highResolutionImageCutIncompletePath;
    
    string logImageIncompletePath;
    
    string modelName;
    
    void setOriginalPath(string path) throw (NullImageException);
    
    void setMetadata();
    void setSubMetadata();
    
    void setLowResolutionImageCutIncompletePath();
    void setHighResolutionImageCutIncompletePath();
    
    void setLogImageIncompletePath();
    
    void setOutputFilePath();
    void setInputFilePath();
    
    void setModelPreviewIncompletePath();
    
    string getModelName();
    void setModelName(GenericModel* model) throw (InvalidModelException);
};

#endif	/* TRANSCRIBERMETAINFO_H */

